A typical data communications network includes many hosts interconnected by various data communication devices. The data communications devices can be routers, bridges, switches, access servers, gateways, hubs, concentrators, proxy servers, repeaters and so forth which exchange data over an interconnection of data links. The data links may be physical connections or may be provided using wireless communication mechanisms. The network allows data to propagate between various applications that execute on the hosts. The hosts are often general purpose computer systems such as personal computers, workstations, minicomputers, mainframes and the like, or the hosts may be more special purpose computer systems or dedicated devices such as web-site kiosks, facsimile or email servers, video servers, audio servers, and so forth. Each computer host couples either physically or via wireless data link to one or more of the data communications devices that form the network. By way of example, many businesses provide a network of computer hosts to allow employees of the business to exchange data, communicate and generally carry out the functions of the business.
Various physical or hardware data communications connection mechanisms allow the hosts to interconnect with the network. Physical data communications connection mechanisms can include modems, transceivers, network interface cards, fiber optic cards, ports and other hardware devices which allow data to be transferred at various data transfer rates (i.e., bandwidths) to and from the hosts and between the data communications devices. For example, certain hosts on a business network may have high-speed network interfaces which provide connections to the network at high data transfer rates such as fractional-T1, T1, E1 or higher, while other hosts may use inexpensive modems or network interface cards that provide much slower maximum data transfer rates to and from the network.
Depending upon a specific use of a host or group of hosts in a network, which often depends on an application running on the host(s), data traveling across portions of the network may require different levels of data service (i.e., data transfer rates or network bandwidth). For example, a backup server (e.g., a high powered computer containing large amounts of data storage) on a typical network used in a business may require a high speed connection to the network to perform nightly backups of data stored on each employee computer. The backup server may, for example, be connected to a fiber optic backbone in the network which offers very high speed data transfer rates. The high speed offered by the fiber optic backbone may allow, for example, data from many employee computers to be simultaneously backed-up by the backup server thus allowing completion of the data backup process for each employee computer before the start of the next business day.
As another example in the business network setting, certain employee computers which rely heavily on data communications applications may require high speed connections to the business network, while other employee computers used, for example, for administrative purposes, may only require low speed network connections. Employees such as engineers using the high speed data communications computers may require high speed network access, while administrative employees using administrative computers may only require minimal network access with low data transfer rates. Within the network itself however, the various data communications devices such as routers, switches and hubs, which channel the data across the network between computer hosts (either during nightly backups, or during the day for employee communications) must be able to distinguish and properly transmit the different flows of data from hosts that require different levels or qualities of data transfer service.
Since many connections, sessions or data traffic flows (i.e., data associated with an end-to-end application or stream) from multiple hosts with potentially different data rates are frequently switched, routed or transferred through the same data communication devices in a network, the data communications devices must provide a way to establish, allocate or reserve the bandwidth requirements for each flow, session, or connection. Once the bandwidth is allocated, the devices must distinguish the different data flows or connections requiring the different levels of service (i.e., different data rates or bandwidth requirements). Once distinguished, the data communications devices must service each connection or flow at its prescribed level of service. For example, if T1 data rates are required for the backup server, the data communications devices must identify and transport backup data through the network at T1 speeds, while other data that may also be present on the network is transferred at some other data rate, such as a “best-effort-only” data rate. Management of the various data transmission and propagation requirements associated with data having differing levels of service is a well known problem associated with data communications devices in modern networks.
Various bandwidth allocation or reservation protocols have been developed for use in modern networks to provide guaranteed Quality of Service (QoS) or controlled end-to-end delays for transmitted data. These protocols allow applications that exchange data between sending and receiving hosts (e.g., employee computers and the backup server) to establish reservations of bandwidth over the network for the various services required by the applications. One such protocol is called RSVP, which stands for the Resource ReSerVation Protocol.
As its name implies, computer hosts can use RSVP to request a specific QoS from the network on behalf of an application data stream. When a host needs bandwidth, the host transmits an RSVP bandwidth reservation request message on the network along the path of the session of data communications. RSVP processes in each data communications device in the network propagate the request through the network to each data communications device (e.g., router, switch, hub) or node that the network uses to transport the session data. At each node, the RSVP process for that node attempts to make a resource (i.e. bandwidth) reservation for the stream specified in the RSVP request at that moment in time. As bandwidth is successfully reserved in each node on the network path from sending host to receiving host, the data associated with the session of data communications can use the reserved network bandwidth, while other data streams are excluded from using the reserved bandwidth resources. In other words, the QoS (e.g., data rate or allocated bandwidth) for that stream is generally guaranteed since the bandwidth is reserved in each node for use by that particular stream (e.g., backup data) and no other. When the sending and receiving hosts no longer require the use of the reserved bandwidth, the hosts mutually agree to release the reserved bandwidth via a series of RSVP un-reserve (i.e., tear-down) protocol messages sent to each data communications device on the path of the reserved data. The data communications devices receive the RSVP un-reserve (tear-down) messages and release the formerly reserved bandwidth resources, allowing these resources to be used for the transfer of other data.
FIG. 1 illustrates a typical architecture and data flow of a prior art data communications device 100 configured to use RSVP. Traditionally, to make a resource reservation in the data communications device 100 (e.g. a router), an RSVP process 101 executing on the device 100 receives an RSVP request (not shown) from a host and communicates this request to two local decision modules, admission control 102 and policy control 103. Admission control 102 determines whether the device 100 has sufficient available resources (e.g., buffer capacity, processor and I/O bandwidth) to supply the requested QoS. Policy control 103 determines whether a user, host or application (typically on another device or host) requesting the bandwidth reservation has administrative permission (i.e. access control) to make the reservation. If either check fails, the RSVP process 101 returns an error notification to the application process that originated the request. If both the admission and policy control checks succeed, the RSVP process 101 defines a set of filterspec parameters provided to a packet classifier 104 and a set of flowspec parameters provided to the packet scheduler 106 to configure and obtain the desired QoS in the device 100 for that stream.
The packet classifier 104 uses the filterspec parameters to filter each packet (data in) that arrives at the device to determine the route and queue for the packet within the data queuing mechanism 105. For example, there may be many prioritized queues, each providing a specific level of service or QoS. The packet scheduler 106 uses the flowspec parameters to properly service the queues in the data queuing mechanism 105 to achieve the promised QoS for each stream. Typically, the packet scheduler 106 employs a weighted fair queuing algorithm to de-queue the data from the various queues in the data queuing mechanism 105 according to the bandwidth allocation requirements or QoS defined in the flowspec parameters.
FIG. 2 illustrates a prior art packet data structure 510 used to transport data in a data stream for which RSVP has reserved bandwidth in data communications device 110. The data packet 510 includes an RSVP header field 180 followed by UDP and IP headers 181, 182 and the data 183. The RSVP header 180 typically includes various fields 184 through 191. Of particular interest is the Tspec field 191 which provides a description or identification of the traffic flow, session, or data stream to which this data packet 510 is associated. The packet classifier 104 and the packet scheduler 106 can use the Tspec field 191 to identify different flows of data and enforce the bandwidth allocations or QoS for each identified flow.